An "object," as used in this disclosure, refers to an entity that is either displayed by a computer program or is part of a computer program and which has characteristics. An example of an object displayed by a computer program is a text box contained in a window of a computer program into which a user can input text. The characteristics of the text box include its color, the font of the text, and the point size of the text. An example of an object that is part of a computer program is an in-memory representation of an animal where its characteristics include its color, number of legs, and whether it is a carnivore. This in-memory representation could be implemented as a data structure with the elements of the data structure storing the characteristics. An example of such a data structure is the C++ class data structure. The characteristics of an object are referred to as properties of the object. Each property of an object typically has a value (e.g., the color property may have the value red).
The properties of an object can usually be modified by either a user or a computer program. For example, in a draw program that can display objects such as rectangles and triangles, a user can modify the objects' properties. These properties include the border width and shading of the objects and perhaps even the color of the objects. Using this example, a user may modify the properties of a rectangle such that a solid border becomes a dashed border and the shading becomes gray. Once these modifications are made, however, these modifications cannot be isolated and applied to another object in conventional systems. That is, if the user wants to make the same modifications (i.e., dashed border and gray shading) to either another triangle or a rectangle, the user must manually make such modifications, which is time consuming. It is thus desirable to provide functionality where the modifications made to the properties of one object can be easily isolated and applied to another object.